package com.ruoyi.door.controller.admin.house.vo;

import cn.hutool.core.date.DateUtil;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Workbook;

import java.math.BigDecimal;
import java.util.Date;


public class DoorHouseExportVO {

    @Excel(name = "公司")
    @ApiModelProperty("公司")
    @Getter
    @Setter
    private String countryName;
    /**
     * 省
     */
    @Excel(name = "省")
    @ApiModelProperty("省")
    @Getter
    @Setter
    private String provinceName;

    /**
     * 市
     */
    @Excel(name = "市")
    @ApiModelProperty("市")
    @Getter
    @Setter
    private String cityName;

    /**
     * 区
     */
    @Excel(name = "区")
    @ApiModelProperty("区")
    @Getter
    @Setter
    private String districtName;

    /**
     * 街道
     */
    @Excel(name = "镇街")
    @ApiModelProperty("镇街")
    @Getter
    @Setter
    private String streetName;

    /**
     * 村
     */
    @Excel(name = "村名")
    @ApiModelProperty("村名")
    @Getter
    @Setter
    private String villageName;

    /**
     * 详细地址
     */
    @Excel(name = "详细地址(门牌号)")
    @ApiModelProperty("详细地址(门牌号)")
    @Getter
    @Setter
    private String address;


    /**
     * 房东
     */
    @Excel(name = "房东姓名")
    @Getter
    @Setter
    private String landlordName;

    @ApiModelProperty("房东电话")
    @Excel(name = "房东电话")
    @Getter
    @Setter
    private String landlordPhone;

    @Excel(name = "门禁编码")
    @ApiModelProperty("门禁编码")
    @ExcelProperty(value = "门禁编码")
    @Getter
    @Setter
    private String door;

//    @Excel(name = "安装费")
//    @Getter
//    @Setter
//    private String install;

    /**
     * 月租
     */
    @Excel(name = "月租费")
    @ApiModelProperty("月租费")
    @Getter
    @Setter
    private BigDecimal monthPrice;

    /**
     * 开始月份 = 截止月份 - (余额 ÷ 月租)
     */
    @Excel(name = "缴费开始日期(非必填)", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("缴费开始日期(非必填)")
    @Getter
    @Setter
    private Date startDate;
    /**
     * 截止日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "缴费截止日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("缴费截止日期")
    @Getter
    @Setter
    private Date endDate;



    /**
     * 余额 = (截止月份- 开始月份 )*月租
     */
    @Excel(name = "余额")
    @ApiModelProperty("余额")
    @Setter
    @Getter
    @ExcelProperty(value = "余额")
    private BigDecimal balance;
    

    
    /**
     * 计算余额并返回
     */
//    public BigDecimal getBalance1() {
//        if (endDate == null || monthPrice == null) {
//            return BigDecimal.ZERO;
//        }
//
//        // 获取当前日期
//        Date now = new Date();
//
//        // 计算年月差
//        int yearDiff = DateUtil.year(endDate) - DateUtil.year(now);
//        int monthDiff = DateUtil.month(endDate) - DateUtil.month(now);
//
//        // 计算总月数差
//        int totalMonthDiff = yearDiff * 12 + monthDiff;
//
//        // 处理日期部分：如果当前日期的日部分大于截止日期的日部分，则多算一个月
//        int endDay = DateUtil.dayOfMonth(endDate);
//        int nowDay = DateUtil.dayOfMonth(now);
//
//        if (nowDay > endDay) {
//            totalMonthDiff--;
//        }
//
//        // 计算余额 = 月数差 * 月租
//        return monthPrice.multiply(BigDecimal.valueOf(totalMonthDiff));
//    }
}
